package cn.elead.chaos.remote.web.system.service;

import java.util.List;

import cn.elead.chaos.mybatils.web.page.TableDataInfo;
import cn.elead.chaos.remote.web.system.domain.SysNotice;
import feign.Param;
import feign.QueryMap;
import feign.RequestLine;

/**
 * 通知公告Service接口
 * 
 * @author luopeng
 * @date 2020-02-26 18:40:26
 */
public interface IRemoteNoticeService {

	/**
	 * 查询通知公告分页列表
	 * 
	 * @param notice 通知公告
	 * @return 通知公告集合
	 */
	@RequestLine("GET /system/notice/page")
	public TableDataInfo<SysNotice> page(@QueryMap SysNotice notice);

	/**
	 * 查询通知公告列表
	 * 
	 * @param notice 通知公告
	 * @return 通知公告集合
	 */
	@RequestLine("GET /system/notice/list")
	public List<SysNotice> list(@QueryMap SysNotice notice);

	/**
	 * 查询通知公告
	 * 
	 * @param noticeId 通知公告ID
	 * @return 通知公告
	 */
	@RequestLine("GET /system/notice/{noticeId}")
	public SysNotice getInfo(@Param("noticeId") Integer noticeId);

	/**
	 * 新增通知公告
	 * 
	 * @param notice 通知公告
	 * @return 结果
	 */
	@RequestLine("POST /system/notice")
	public int add(SysNotice notice);

	/**
	 * 修改通知公告
	 * 
	 * @param notice 通知公告
	 * @return 结果
	 */
	@RequestLine("PUT /system/notice")
	public int edit(SysNotice notice);

	/**
	 * 批量删除通知公告
	 * 
	 * @param noticeIds 需要删除的通知公告ID
	 * @return 结果
	 */
	@RequestLine("DELETE /system/notices/{noticeId}")
	public int remove(@Param("noticeId") Long[] noticeId);

	/**
	 * 删除通知公告信息
	 * 
	 * @param noticeId 通知公告ID
	 * @return 结果
	 */
	@RequestLine("DELETE /system/notice/{noticeId}")
	public int remove(@Param("noticeId") Long noticeId);
}